<template>
  <h1>我是App组件</h1>
  <h2>一个人的信息</h2>
  <h3 v-show="person.name">姓名：{{person.name}}</h3>
  <h3>年龄：{{person.age}}</h3>
  <h3 v-show="person.sex">性别：{{person.sex}}</h3>
  <h4>工作类型: {{person.job.type}}</h4>
  <h4>工作岗位：{{person.job.position}}</h4>
  <h4>爱好：{{person.hobby}}</h4>
  <h4>测试的数据c：{{person.job.a.b.c}}</h4>
  <button @click="changeInfo">修改人的信息</button>
  <button @click="addSex">添加一个sex属性</button>
  <button @click="deleteName">删除一个name属性</button>
  <br/>
</template>

<script>
import { reactive } from 'vue'
export default {
  name: 'App',
  setup() {
    // 数据
    let person = reactive({
      name: '张三',
      age: 18,
      job: {
        type: '打工人',
        position: '工程师',
        a: {
          b: {
            c: 666
          }
        }
      },
      hobby: ['抽烟', '喝酒', '烫头']
    })
    // 方法
    function changeInfo() {
      // RefImpl：reference 引用 implement 实现  引用实现的实例 引用对象
      person.name = '李四'
      person.age = 20
      person.job.type = '管理者'
      person.job.a.b.c = 999
      person.hobby[0] = '学习'
    }
    function addSex() {
      person.sex = '男'
    }
    function deleteName() {
      delete person.name
    }
    // 返回一个对象（常用）
    return {
      changeInfo, person, addSex, deleteName
    }
  }
}
</script>